package com.sg.dto.biz.bff.res;

import com.sg.dto.biz.bff.common.BffAccountSubjectDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @desc BffQuerySubmitTaskInfoDetailRespDto
 * @使用场景
 */
@Data
public class BffQuerySubmitTaskInfoDetailRespDto implements Serializable {

    /**
     * 是否开启标志性成果
     */
    @ApiModelProperty("是否开启标志性成果")
    private String isOpenSymbolicAchievements;

    /**
     * 进度型指标是否开启成果对接
     */
    @ApiModelProperty("进度型指标是否开启成果对接")
    private String processIsOpenAchiveDocking;

    /**
     * 周期阶段资料记录ID
     */
    @ApiModelProperty("周期阶段资料记录ID")
    private String cycleStageDataId;

    /**
     * 周期资料归属对象ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String cycleDataObjId;

    /**
     * 目标周期周期名称
     */
    @ApiModelProperty("目标周期周期名称")
    private String targetCycleStandardName;

    /**
     * 展示目标值
     */
    @ApiModelProperty("目标周期展示目标值")
    private Double showTargetValue;

    /**
     * 冗余单位
     */
    @ApiModelProperty("目标值单位")
    private String unit;

    /**
     * 任务名称
     */
    @ApiModelProperty("任务名称")
    private String taskName;

    /**
     * 实际结束时间
     */
    @ApiModelProperty("任务汇报时间")
    private Date actualEndTime;

    /**
     * 超文本内容
     */
    @ApiModelProperty("阶段工作总结内容")
    private String hypertextContent;

    /**
     * 是否实际验收周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否实际验收周期")
    private String isActualReceptionCycle;

    /**
     * 问题数据类型 QUASI_PROBLEM_DATA:准问题数据 PROBLEM_DATA:问题数据 NORMAL_DATA:正常数据
     */
    @ApiModelProperty("问题数据类型")
    private String questionDataTypeCode;

    /**
     * 是否历史问题数据 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否历史问题数据")
    private String isHistoryProblemData;

    /**
     * 问题发起人身份人员ID
     */
    @ApiModelProperty("问题发起人身份人员ID")
    private String problemDataOriginalRoleMemberId;

    /**
     * 角色标识
     */
    @ApiModelProperty("当前身份人员在小圈子中角色标识")
    private String roleCode;

    @ApiModelProperty("图片单条转数据集列表 ")
    List<String> picSingleSetDataEntryList = new ArrayList<>();

    /**
     * 实际值（数值）
     */
    @ApiModelProperty("实际值（数值）")
    private Double actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("实际值单位")
    private String actualValueUnit;

    /**
     * 进度值（数值）
     */
    @ApiModelProperty("进度值（数值）")
    private Double progressValue;

    /**
     * 较上次目标增降幅
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String fromLastTargetLiftRatioUnit;

    /**
     * 进度值单位
     */
    @ApiModelProperty("进度值单位")
    private String progressValueUnit;

    /**
     * 进度较上次增降幅
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String progressFromLastRatioUnit;

    /**
     * 汇报得分（文本）
     */
    @ApiModelProperty("汇报得分（文本）")
    private String reportScore;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("汇报得分单位")
    private String reportScoreUnit;

    /**
     * 汇报得分较上次增降幅（数值）
     */
    @ApiModelProperty("汇报得分较上次增降幅（数值）")
    private Double fromLastRatioReportScore;

    /**
     * 汇报得分较上次增降幅单位
     */
    @ApiModelProperty("汇报得分较上次增降幅单位")
    private String fromLastRatioReportScoreUnit;

    /**
     * 达成度
     */
    @ApiModelProperty("达成度")
    private Double reach;

    /**
     * 达成度单位
     */
    @ApiModelProperty("达成度单位")
    private String reachUnit;

    /**
     * 达成度较上次增降幅
     */
    @ApiModelProperty("达成度较上次增降幅")
    private Double actualFromLastTimeRatio;

    /**
     * 达成度较上次增降福单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("达成度较上次增降福单位")
    private String actualFromLastTimeRatioUnit;

    /**
     * 实际得分等级
     */
    @ApiModelProperty("实时得分等级")
    private String realTimeScoreLevel;

    /**
     * 财务数据结果ID
     */
    @ApiModelProperty("财务数据结果ID ")
    private String financeDataResultId;

    /**
     * 预算支出金额
     */
    @ApiModelProperty("预算支出金额")
    private Double budgetDisburse;

    /**
     * 预算支出金额单位
     */
    @ApiModelProperty("预算支出金额单位")
    private String budgetDisburseUnit;

    /**
     * 上一预算支出金额
     */
    @ApiModelProperty("上一预算支出金额")
    private String parentBudgetDisburse;

    /**
     * 科目ID
     */
    @ApiModelProperty("科目ID")
    private String accountSubjectld;

    /**
     * 科目名称
     */
    @ApiModelProperty("科目名称")
    private String accountSubjectName;

    @ApiModelProperty("财务科目列表")
    private List<BffAccountSubjectDto> accountSubjectList = new ArrayList<>();

    /**
     * 账户单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("账户单位")
    private String accountUnit;

    /**
     * 汇报进度值元素
     */
    @ApiModelProperty("汇报进度值元素")
    private Long progressValueElement;

    /**
     * 汇报实际值元素
     */
    @ApiModelProperty("汇报实际值元素")
    private Long actualValueElement;

    /**
     * 汇报预算元素
     */
    @ApiModelProperty("汇报预算元素")
    private Long budgetAmountElement;

    /**
     * 汇报成果元素
     */
    @ApiModelProperty("汇报成果元素")
    private Long achievementDockingElement;

    /**
     * 主树实际值计算公式标识
     */
    @ApiModelProperty("主树实际值计算公式标识")
    private String evaActualCalcCode;

    /**
     * 是否开启成果对接 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启成果对接")
    private String isSymbolicAchievements;

}
